The present invention relates to a method and/or architecture for configuring a redundant array of inexpensive disks (RAID) volume generally and, more particularly, to a RAID volume that does not require redundancy pre-initialization.
When implementing volume redundancy, such as RAID 1 or RAID 5, the volume redundancy must be initialized. Two conventional approaches are used for initializing volume redundancy. However, both the conventional approaches (i) are performed when a volume is created and (ii) reduce host or array controller bandwidth during the initialization process. A first conventional approach writes blocks of zeros to both a primary data block and a redundancy data block. The blocks of zeros are written to every sector in a volume for both the primary data block and the redundancy data block (i.e., the parity partition or the mirror partition, depending on the redundancy level). The entire volume is unavailable for use until the initialization is complete.
A second conventional approach is dependent on a particular RAID level. The second conventional approach requires existing blocks of data to be read from drives and new redundancy information to be created and written back to the drives. Such an approach allows the existing data volume to be used during initialization, with special handling for write operations to the area of the volume that has not yet been initialized. However, performance is compromised while the initialization runs in the background.
The second conventional method allows a host to perform read and write operations on the existing data volume. However, an array controller of the host is required to know what area of the volume has been initialized and what area of the volume has not been initialized. The array controller is required to perform a specialized read and/or write that can require additional complex logic.
When implementing the RAID 5 redundancy method, blocks of data are read across the same block on each of the drives involved in the volume to compute parity (i.e., an XOR operation). The RAID 5 method is then required to write parity to the redundancy data block location.
It is therefore desirable to provide a system that will initialize a redundant volume without a preinitialization routine and without adversely affecting performance.
The present invention concerns a method for providing sequential initialization of redundancy data in a volume comprising the steps of: (A) defining a boundary; (B) determining a location of the data with respect to the boundary; and (C) initializing a redundancy location of the volume and writing the data and a redundancy of the data to the volume.
The objects, features and advantages of the present invention include providing a method and/or architecture for implementing a redundant array of inexpensive disks (RAID) volume that may (i) allow for sequential operation, (ii) operate without redundancy pre-initialization and/or (iii) eliminate an initializing volume redundancy process by implementing volume that is written sequentially.